	

	
	/*
	*
	*通用ajax后台调用函数
	*param url:ajax 调用的后台响应url
	*param param:ajax 调用后台传递参数(post method)
	*param callbackTarget 调用成功后回调函数目标对象
	*param callbackFunc 调用成功后执行的回调函数，回调函数接受两个参数
		回调函数参数:
			param callbackTarget: 回调目标对象
			param r				: json格式数据对象(ajax调用返回的远程数据))
	*/
	app.addService('ajax-serv',	function(){

		'use strict';
		
		var msgServ=0,
			private_method=0;

		// 默认参数
		var default_setting = {
			url: null,
			param:null,
			dataType:'json',
			type:'post',
			contentType:"json",
			callback:null,
			callbackParam:null,
			successMsg:null,
			error:null,
			backData:null
		};

		private_method = {
			/**
			* 获取msg-serv实例
			* 
			* @return 调用成功后，返回msg-serv实例
			*
			*/
			getMsgSrv:function(){
				if(!msgServ)
					msgServ = app.getService('msg-serv');

				return msgServ;
			},
			/**
			* 后台ajax调用，返回调用结果数据
			* @param _options ajax调用所需url,data,content等封装信息
			* @param callbackFunc 回调函数
			* @return 调用成功后，执行回调函数callbackFunc
			*
			*/
			runAjax:function(options,callbackFunc){
				var args = $.extend( default_setting, options||{});

				var _method = args.method;

				if(_method){
					if(_method=='del')
						args.contentType='application/x-www-form-urlencoded; charset=UTF-8';
				}
				
				var _cType = args.contentType;
				if(_cType){
					switch (_cType)
					{
					case 'form':
						args.contentType='application/x-www-form-urlencoded; charset=UTF-8';
						break;
					case 'json':
						args.contentType="appliction/json;charset=utf-8";
						break;
					
					}
				}
				$.ajax({
					url:args.url,
					dataType:args.dataType,
					type:args.type,
					data :args.data,
					contentType:args.contentType,
					success:callbackFunc,
					error:function(jqXHR,textStatus,errorThrown ){
						//$.messager.alert('提示','加载失败,请重新刷新页面');
						msgServ = private_method.getMsgSrv();
						msgServ.Msgslide('操作失败,请重新刷新页面');
					}
				});
			}
			
		};
		return {
			/**
			*
			*
			*/
			init:function(){
				msgServ = app.getService('msg-serv');
			},

			/**
			*
			*
			*
			*/
			destory:function(){
				msgServ = null;
			},

			/**
			* 后台ajax调用，返回调用结果数据
			* @param _options ajax调用所需url,data,content等封装信息
			* @param _options.callback 模块内部回调函数，用于针对不同业务需求进行返回数据的处理
			* @return 调用成功后，将调用结果数据作为参数执行业务回调函数(_options.callback)
			*
			*/
			runAjax:function(_options){
				private_method.runAjax(_options,
					function(data,ressionStr,statusObj){
						if($.isFunction(_options.callback)){
							if(_options.method!='del')								
								_options.callback(data,ressionStr,statusObj);
							}else{
								private_method.getMsgSrv.Msgslide('页面异常（数据已保存），请联系系统管理员,');
							}
							if(_options.successMsg){
								private_method.getMsgSrv.Msgslide(_options.successMsg);
							}
					}
					
				);
			},

			/**
			* 后台ajax调用，返回调用结果数据
			* @param _options ajax调用所需url,data,content等封装信息
			* @param callbackFunc 模块内部回调函数，用于针对不同业务需求进行返回数据的处理
			* @return 调用成功后，将调用结果数据封装到调用参数中(_options)，然后执行业务回调函数(_options.callback(_options))
			*/
			runAjaxE:function(_options){
				private_method.runAjax(_options,
					function(r){
						if($.isFunction(_options.callback)){
							if(_options.method!='del')
								_options.data = r;
							_options.callback(_options);
						}else{
							private_method.getMsgSrv.Msgslide('页面异常（数据已保存），请联系系统管理员,');
						}
						if(_options.successMsg){
							private_method.getMsgSrv.Msgslide(_options.successMsg);
						}
					}
					
				);
			}
		};
	});

